package com.java.yz.day10.ketang;

import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collection;

/*
    我们根据存储的数据类型不同，存储和取出的方式也就不同，使用的场景也就不同，java根据这些场景给我们提供了
    不同的集合类给我们使用，集合就可以理解是存储数据的容器
    Collection  分为 List Set
         List 分为 ArrayList Vector LinedList  //这些就要理解为一个个具体的容器
         Set  分为 HashSet  TreeSet

    Map  分为  HashMap  TreeMap


为什么出现集合类？
    面向对象语言对事物的体现都是以对象的形式，所以为了方便对多个对象的操作，Java就提供了集合类。
数组和集合类同是容器，有何不同？
    数组虽然也可以存储对象，但长度是固定的；集合长度是可变的。数组中可以存储基本数据类型，集合只能存储对象。
集合类的特点
    集合只用于存储对象，集合长度是可变的，集合可以存储不同类型的对象。

 */
public class CollectionDemo1 {
    public static void main(String[] args) {
        //Collection是个接口，只能通过子类来实现，我们这是需要借助ArrayList来创建对象
        Collection arrayList = new ArrayList();
        System.out.println(arrayList);
        //Collection的成员方法
        /*
            boolean add(E e)
            boolean remove(Object o)
            void clear()
            boolean contains(Object o)
            boolean isEmpty()
            int size()
         */

        //    boolean add(E e)  向集合中添加元素
        //现在先把 E 理解为Object类型
        arrayList.add("你好");
        arrayList.add(10);//存储基本数据类型的时候，内部会自动装箱，变成对应的包装类型传入
        //放进去是什么类型就是什么类型
        arrayList.add(11.22);
        arrayList.add(true);
        System.out.println(arrayList);

        //boolean remove(Object o)  删除某一元素 删除成功就返回true
        arrayList.remove(10);

        //void clear()  清空所有元素

        //boolean contains(Object o) 是否包含某一元素

        //boolean isEmpty() 看是否为空

        //int size()  获取元素的个数  没有什么固定的长度
        System.out.println(arrayList.size());  //长度为3 ，有3个素

        /**
         * 1.数组获取长度：length属性  数组名.length
         * 2.String获取长度  length方法  字符串对象名.length()
         * 3.Collection集合获取长度 size()方法   集合对象名.size()
         */
    }
}
